#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include "y.tab.h"
#include "symbtab.h"

static int taille = 0;

void 
store(char *var, char* type, double valeur)
{
  int i;
  for (i=0; i<taille && strcmp(symtable[i].nom,var)!=0; i++)
    ;
  if (i==taille) 
    {
      if (taille==MAX-1) {
	printf("ERROR: symbol table overflow\n");
	return;
      }
      taille++;
      symtable[i].nom=malloc(strlen(var)+1); 
      strcpy(symtable[i].nom,var);
   }
  symtable[i].type = malloc(strlen(type)+1);
  strcpy(symtable[i].type, type);

  symtable[i].val=valeur;
}

double 
find(char *var)
{
  int i;
  for (i=0; i<taille && strcmp(symtable[i].nom,var)!=0; i++)
    ;
  if (i==taille) 
    return 0; //valeur initiale d'une variable sans affectation
  else
    return symtable[i].val;
}

char 
*get_type(char *var)
{
  int i;
  for (i=0; i<taille && strcmp(symtable[i].nom,var)!=0; i++)
    ;
  if (i==taille) 
    return "ndef"; //valeur initiale d'une variable sans affectation
  else
    return symtable[i].type;
}

int size(){
  return taille;
}
